Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

dePortal_priv.hpp

Go to the documentation of this file.
00001 ///////////////////////////////////////////////////////////////////////////////
00002 /// @file dePortal_priv.hpp
00003 ///
00004 /// @brief Portal culling routines, private header
00005 ///
00006 /// @author Assassin
00007 ///
00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
00009 /// contents of this file is subject to the Destiny3D Member License which
00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
00011 ///
00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
00014 /// for any particular purpose.
00015 ///
00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
00017 ///
00018 /// <hr>
00019 ///                                 Change History
00020 /// <hr>
00021 ///
00022 /// @date Jan 2002
00023 /// @author Assassin
00024 /// @remarks Creation
00025 ///
00026 ///////////////////////////////////////////////////////////////////////////////
00027 
00028 #ifndef DEPORTAL_PRIV_HPP
00029 #define DEPORTAL_PRIV_HPP
00030 
00031 #include "deGlobalTypes.hpp"
00032 #include "dePortal.hpp"
00033 #include "deArray.hpp"
00034 #include "deMath.hpp"
00035 
00036 #pragma todo(fix the orthographic border case intersection and clipping stuff)
00037 
00038 class dePortal : public IdePortal
00039 {
00040 protected:
00041     ~dePortal();
00042 public:
00043     dePortal();
00044     dePortal(deVec3d Vertices[], int Num);
00045     int Release();
00046     
00047     IdeVertexBuffer * GetVBuffer();
00048     deBoolean IsTPortal() const;
00049     void SetTPortal(deBoolean TPortal);
00050     
00051 //  void ClipFrustum(deTransformInfo * CamPos, const deFrustum &in, deFrustum &out);
00052     deBoolean ClipFrustum(const deTransformInfo & CamPos, const IdePlaneFrustum* in, IdePlaneFrustum* out);
00053     deBoolean IntersectsFrustum(const deTransformInfo & CamPos, const IdePlaneFrustum* f) const;
00054     
00055     void SetVertices(deVec3d Vertices[], long Num);
00056     deVec3d* GetVertices(long &Num) const;
00057     
00058     deWorldID   GetLinkWorldID() const;
00059     deObjectID  GetLinkObjectID() const;
00060     void        SetLinkWorldID(deWorldID WorldID);
00061     void        SetLinkObjectID(deObjectID ObjectID);
00062     deBoolean   LinkTo(IdeSceneRoom* SceneRoom);
00063     
00064     deBoolean IsPlanar();
00065     
00066     void SetNormal(const deVec3d & v);
00067     void GetNormal(deVec3d & v) const;
00068 
00069     void SetPosition(const deTransformInfo & M);
00070     void GetPosition(deTransformInfo & M) const;
00071     void SetTransform(const deTransformInfo & M);
00072     void GetTransform(deTransformInfo & M) const;
00073     void ConcatTransform(deTransformInfo & M);
00074     
00075 private:
00076     deWorldID           m_LinkWorldID;
00077     deObjectID          m_LinkObjectID;
00078     deTransform         m_Transform, m_Position;
00079     deTArray <deVec3d>  m_Vertices;
00080     IdeVertexBuffer *   m_VBuffer;
00081     deBoolean           m_VertsChanged;
00082     deBoolean           m_DoesTransformation;
00083     deBoolean           m_IsPlanar;
00084     deVec3d             m_Normal;
00085 };
00086 
00087 #endif

Generated on Mon Sep 12 19:58:34 2005 for Destiny3D by doxygen1.3-rc3